package com.tcgroup.phone.base_core;

import androidx.multidex.MultiDexApplication;

import com.alibaba.android.arouter.launcher.ARouter;
import com.kingja.loadsir.core.LoadSir;
import com.tcgroup.phone.base_core.loadsir.EmptyCallback;
import com.tcgroup.phone.base_core.loadsir.ErrorCallback;
import com.tcgroup.phone.base_core.loadsir.LoadingTransCallback;
import com.tcgroup.phone.base_core.utils.KLog;
import com.tcgroup.phone.base_core.utils.Utils;
import com.tencent.mmkv.MMKV;

/**
 * 作者: wangfei
 * 创建时期: 2020/3/19.
 * 包名: com.tcgroup.phone.base_core
 * 类名: OSAndroidMvvm
 */
public class BaseApplication extends MultiDexApplication {

    private static BaseApplication mApplication;

    @Override
    public void onCreate() {
        super.onCreate();
        mApplication = this;
        KLog.init(BuildConfig.DEBUG);
        if (BuildConfig.DEBUG) {           // 这两行必须写在init之前，否则这些配置在init过程中将无效
            ARouter.openLog();     // 打印日志
            ARouter.openDebug();   // 开启调试模式(如果在InstantRun模式下运行，必须开启调试模式！线上版本需要关闭,否则有安全风险)
        }
        ARouter.init(this); // 尽可能早，推荐在Application中初始化
        Utils.init(this);
        MMKV.initialize(this);
        LoadSir.beginBuilder()
                .addCallback(new ErrorCallback())
                .addCallback(new EmptyCallback())
                .addCallback(new LoadingTransCallback())
                .setDefaultCallback(LoadingTransCallback.class)
                .commit();
    }
    public static BaseApplication getInstance(){
        return mApplication;
    }

}
